perm filename TWOCOL.1[DOC,TOB] blob
sn#418759 filedate 1979-02-12 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .<< One- and two-column formatting macros. See PUBMAC.LES[UP,DOC]
C00013 ENDMK
C⊗;
.<< One- and two-column formatting macros. See PUBMAC.LES[UP,DOC]
. for documentation >>
.first_line←4;
.last_line←73;
.total_lines←last_line;
.
.if xcribl then start "XGP"
. page frame total_lines high 82 wide
. macro twocol; ⊂
. area text lines first_line to last_line IN 2 COLUMNS 5 APART;
. cols←2; ssname←NULL; place text; next page;
. ⊃;
. macro onecol; ⊂
. area text lines first_line to last_line;
. cols←1; ssname←NULL; place text; next page;
. ⊃;
. if sides=1 then start ODDLEFTBORDER←EVENLEFTBORDER←1030 end
. else start ODDLEFTBORDER←1030; EVENLEFTBORDER←930; end;
. end "XGP"
.else start "TTY"
. page frame total_lines-1 high 70 wide;
. macro twocol; ⊂
. area text lines first_line to last_line IN 2 COLUMNS 5 APART
. cols←2; ssname←NULL; place text; next page;
. ⊃;
. macro onecol; ⊂
. area text lines first_line to last_line;
. cols← 1; ssname←NULL; place text; next page;
. ⊃;
. end "TTY";
.
.TURN ON "α%"
.MACRO NEXT COLUMN ⊂ start SKIP 200; end ⊃;
.title area heading lines 1 to 3
.twocol;
.
.<< Section numbering and table of contents >>
.
.COUNT SECTION
.macro sskip ⊂skip 200⊃; << section skip control >>
.MACRO S(NAME) ⊂ SECNAME←SSNAME←NULL;
.BEGIN sskip;
. NEXT SECTION; TURN ON "{←"
. fill NOJUST; SELECT 3
←{SECTION!}. NAME
. SELECT 1; SECNAME←"NAME"
. SEND CONTENTS ⊂ SKIP
∩∩6:{SECTION!}. NAME→∪∪{PAGE!}
. ⊃
.END fill adjust ⊃
.
.COUNT SUBSECTION IN SECTION PRINTING "!.1"
.macro ssskip ⊂if lines<10 then skip 200;;⊃; << subsection skip >>
.MACRO SS(NAME) ⊂ SSNAME←NULL
.BEGIN ssskip;
. NEXT SUBSECTION; TURN ON "{←"
. NOJUST; SELECT 3
←{SUBSECTION!} NAME
. SELECT 1; SSNAME←SUBSECTION!&" "&"NAME";
. SEND CONTENTS ⊂
∩∩2:∂3{SUBSECTION!} NAME→∪∪{PAGE!}
. ⊃
.END ⊃
.
.COUNT SUB2 IN SUBSECTION PRINTING "!.1"
.macro sssskip ⊂if lines<8 then skip 200;;⊃; << subsubsection skip >>
.MACRO SSS(NAME) ⊂
. NEXT SUB2
. BEGIN sssskip; TURN ON "{←"
. INDENT 4,8; NOJUST; SELECT 3
←{SUB2!} NAME
. SELECT 1
. SEND CONTENTS ⊂
∩∩2:∂6{SUB2!} NAME→∪∪{PAGE!}
. ⊃
.END ⊃
.
.COUNT appendix PRINTING "A";
.macro appskip ⊂skip to column 1⊃; << appendix skip >>
.MACRO APP(NAME) ⊂ SECNAME←SSNAME←NULL
.BEGIN appskip;
.NEXT APPENDIX; TURN ON "{←"
.fill adjust; preface 0; SELECT 3
←Appendix {APPENDIX!}
.break
←NAME
.SELECT 1; skip;
.SECNAME←"Appendix "&APPENDIX!; SSNAME←"NAME";
.IF APPENDIX=1 THEN BEGIN
. SEND CONTENTS ⊂ SKIP
∩∩6:←%3Appendices%1
. ⊃
. IF SIDES=1 THEN START EVERY HEADING(%3{SECNAME},{SSNAME},{PAGE!}); END;
. END
.SEND CONTENTS ⊂ SKIP
∩∩3:{APPENDIX!}. NAME→∪∪{PAGE!}
. ⊃
.END ⊃
.
.MACRO CB(TITLE) ⊂ BEGIN TURN ON "←"; SELECT 3
.IF LINES<6 THEN skip 200;
←TITLE
.END ⊃
.
. << Call this macro once at the end of the document >>
.MACRO BACK ⊂ twocol
.begin "back"
. COUNT PAGE PRINTING "i"
. IF SIDES=2 THEN START
. ODD HEADING(,TABLE OF CONTENTS,{PAGE!});
. EVEN HEADING({PAGE!},TABLE OF CONTENTS,);
. END
. ELSE START EVERY HEADING(,%3TABLE OF CONTENTS,{PAGE!}) END;
.
. PORTION CONTENTS
. FILL NOJUST CRBREAK TURN ON "%∂←→"
. turn on "∪" for "#";
.
. AT "∩∩" LMIN ":" ⊂ IF LINES<LMIN THEN BEGIN
. skip 200; SELECT 3
∂5Section→Page
. SKIP;
. END
. ⊃;
. INDENT 0,10,3; PREFACE 0; SELECT 3
∂5Section→Page
. SELECT 1;
. RECEIVE
.end "back" ⊃;
.
.MACRO FAC ⊂FILL ADJUST COMPACT ⊃
.
.PORTION MAIN
.if sides=2 then start
. EVEN HEADING({PAGE!},,{SECNAME})
. ODD HEADING({SSNAME},,{PAGE!})
. end
.else every heading({Secname},,{PAGE!})
.PLACE HEADING; SELECT 3; TURN ON "{";
.PLACE TEXT; SELECT 1;
.count page to 300;
.fill; adjust; retain; SECNAME←null;